Business process management (BPM) offers a programmatic structure for designing transactions and executing them using automated decisions, tasks and sequence flows. For example, an insurance company can use BPM to automate the steps involved in processing insurance claims. BPM solutions typically include a process definition tool, an engine that executes process definitions, and tools that aid process monitoring
A process definition tool allows a process designer to specify a definition of a business process using a particular business process language. Example languages may include the business process execution language (BPEL), web services flow language (WSFL) or business process modeling language (BPML). When a business process is defined, it can be deployed as a web application using, for example, the Java 2 Enterprise Edition (J2EE) web services deployment model.
Traditional business process management tools generally use strictly defined structured processes. Such processes can be inflexible in dynamic environments when it may not be clear which steps of a workflow should be executed and which steps should not be executed and under which conditions. Unstructured ad-hoc processes were introduced to overcome limitations of the traditional business process management tools. Characteristics of unstructured ad-hoc processes include: processes in which some activities might not need to be executed; processes in which some activities might be repeated more than once; processes in which the order for executing the activities is not always described; processes in which some activities may not be connected, sometimes resulting in several process fragments, etc. The activities of an unstructured ad-hoc process may be decided by the end user or an expert who selects which tasks he or she wants to execute, or by external events that might trigger certain tasks, or by the available data related to that process instance that defines what step or activity to execute next.